#-*- coding: utf-8 -*-
#
# declaracao de uma lista arbitraria de numeros naturais
lista = [ 1 , 2 , 3 , 4 , 5 , 4 , 4 , 2 , 3 , 5 , 2 , 6 ]
print lista
# formacao de conjuntos
conj1 = set ( lista )
conj2 = set ( [ 1 , 4 , 5 , 8 ] )
print conj1
print conj2
# interseccao de conjuntos
conj3 = conj1.intersection(conj2)
print conj3
#lista com elementos nao redundantes
lista1 = [ x for x in conj1 ]
print lista1

##################################
# dicionarios
##################################

# declaracao de dicionario
d = {}
print d
# e l ementos do d i c i o n a r i o
d [ 'a' ] = 'x'
d [ 'e' ] = 'y'
d [ 'i' ] = 'z'
d [ 'o' ] = 't'
d [ 'u' ] = 'w'

frase = 'Cronus castrou o seu pai Urano'


# a frase2 fica codificada
frase2= ' '
for x in frase:
	if x in set ( [ 'a' , 'e' , 'i' , 'o' , 'u' ] ) :
		frase2+=d[ x ]
	else:
		frase2 += x
		pass
	pass
print frase2	
#declaracao de uma funcao
f = lambda x : d [ x ] if x in d else x

#procedimento de codificacao funcional
frase3 = reduce ( lambda x , y : x + y , map( f , frase ) )
print frase3
#busca dos valores no dicionario
for chave , valor in d.iteritems ( ) :
	print chave , valor
